package com.mirhoseini.marvel.activity; import android.content.Context; import android.content.Intent; import android.databinding.DataBindingUtil; import android.databinding.ViewDataBinding; import android.os.Bundle; import android.support.v7.widget.Toolbar; import com.mirhoseini.marvel.ApplicationComponent; import com.mirhoseini.marvel.BR; import com.mirhoseini.marvel.MarvelApplication; import com.mirhoseini.marvel.R; import com.mirhoseini.marvel.base.BaseActivity; import com.mirhoseini.marvel.database.model.CharacterModel; import butterknife.BindView; import butterknife.ButterKnife; import timber.log.Timber; public class CharacterActivity extends BaseActivity { private static final String ARG_CHARACTER = "characterModel"; // injecting views via ButterKnife @BindView(R.id.toolbar) Toolbar toolbar; public static Intent newIntent(Context context, CharacterModel character) { Intent intent = new Intent(context, CharacterActivity.class); intent.putExtra(ARG_CHARACTER, character); return intent; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ViewDataBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_character); // inject views using ButterKnife ButterKnife.bind(this); if (null == getIntent() || null == getIntent().getExtras() || null == getIntent().getExtras().getSerializable(ARG_CHARACTER)) { finish(); return; } // get args CharacterModel character = (CharacterModel) getIntent().getExtras().getSerializable(ARG_CHARACTER); // bind value using Android Binding binding.setVariable(BR.character, character); setupToolbar(character.getName()); Timber.d("Character Activity Created"); } @Override protected void injectDependencies(MarvelApplication application, ApplicationComponent component) { component.inject(this); } private void setupToolbar(String characterName) { setSupportActionBar(toolbar); toolbar.setNavigationIcon(R.drawable.logo); getSupportActionBar().setTitle(characterName); getSupportActionBar().setDisplayHomeAsUpEnabled(true); } @Override protected void releaseSubComponents(MarvelApplication application) { } }